package com.imooc.bigdata.chapter08_my

import com.imooc.bigdata.chapter08_my.business.{AppStatProcess, AreaStateProcess, LogETLProcess, ProvinceCityStatProcess}
import org.apache.spark.internal.Logging
import org.apache.spark.sql.SparkSession
import org.apache.commons.lang3.StringUtils

object SparkApp extends Logging{
  /**
    * //整个spark作业的入口点
    * 一般离线作业一天一个批次，然后这里定义了入口类，一天执行一次就好
    * @param args
    */
  def main(args: Array[String]): Unit = {


    //开发中， name和master要用spark-submit指定，不能硬编码
    val spark: SparkSession = SparkSession
      .builder()
      .getOrCreate()

//    val spark: SparkSession = SparkSession
//      .builder()  //
//      .master("local[2]")
//      .appName("LogETLApp")
//      .getOrCreate()

    val time = spark.sparkContext.getConf.get("spark.time") //spark框架只识别spark开头的
    if (StringUtils.isBlank(time)){
      logError("处理批次不能为空。。。")
      System.exit(0)
    }

   //STEP1 :ETL
    LogETLProcess.process(spark)
    //STPE2 :统计省份
    ProvinceCityStatProcess.process(spark)

    //统计地区
    AreaStateProcess.process(spark)
    //统计App
    AppStatProcess.process(spark)

    spark.stop()
  }
}
